package com.ruoyi.teaching.mapper;

import java.util.List;

import com.ruoyi.teaching.domain.YaCourseDesign;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 课程设计Mapper接口
 *
 * @author ruoyi
 * @date 2025-09-11
 */
@Mapper
public interface YaCourseDesignMapper {
  /**
   * 查询课程设计
   *
   * @param id 课程设计主键
   * @return 课程设计
   */
  public YaCourseDesign selectYaCourseDesignById(Long id);

  /**
   * 查询课程设计列表
   *
   * @param yaCourseDesign 课程设计
   * @return 课程设计集合
   */
  public List<YaCourseDesign> selectYaCourseDesignList(YaCourseDesign yaCourseDesign);

  /**
   * 新增课程设计
   *
   * @param yaCourseDesign 课程设计
   * @return 结果
   */
  public int insertYaCourseDesign(YaCourseDesign yaCourseDesign);

  /**
   * 修改课程设计
   *
   * @param yaCourseDesign 课程设计
   * @return 结果
   */
  public int updateYaCourseDesign(YaCourseDesign yaCourseDesign);

  /**
   * 删除课程设计
   *
   * @param id 课程设计主键
   * @return 结果
   */
  public int deleteYaCourseDesignById(Long id);

  /**
   * 批量删除课程设计
   *
   * @param ids 需要删除的数据主键集合
   * @return 结果
   */
  public int deleteYaCourseDesignByIds(Long[] ids);

  /**
   * 根据阶段id删除课程设计
   *
   * @param stage 阶段id
   * @return 删除结果
   */
  int deleteYaCourseDesignByStageId(Long stage);

  /**
   * 批量插入课程设计
   *
   * @param courseList 课程设计列表
   * @return 插入结果
   */
  int insertBatchCourseDesign(List<YaCourseDesign> courseList);


  /**
   * 根据阶段id查询课程设计
   *
   * @param stage 课程设计列表
   * @return 更新结果
   */
  List<YaCourseDesign> selectYaCourseDesignByStageId(@Param("stage") Long stage);


  YaCourseDesign selectYaCourseDesignByDay(Long day);
}

